The invention relates to the field of interfaces between processors and peripherals. More specifically, the invention relates to the field of processor to peripheral interfaces for processors which are either synchronous or asynchronous.
There are many applications today where microprocessors running various control programs are coupled to peripheral chips which are used by the microprocessor to do various functions necessary for the application. An example would be a UART for transmitting and receiving data over buses or a data path controller for a local area network application. Many other examples of peripherals exist, and new types of peripherals will be continuously developed. In these microprocessor applications, the peripherals have their own clocks which are asynchronous to the microprocessor clock. Typically, the microprocessor sends commands and data to the peripheral device and reads data from the peripheral device. Special interface circuitry is necessary to insure that these read and write transactions occur properly given that the two devices are running on different clocks. Because of this aspect and the fact that multiple peripherals may be connected to the same data bus, there exists a need for a predetermined set of handshaking signals to indicate to a peripheral when it is being addressed, what kind of a transaction is supposed to occur, when the peripheral is ready, and when the data is on the bus.
Other applications use bit sliced microprocessors or microprogrammed architecture coupled to peripherals all of which run on the same system clock. In these architectures, the controller sends instructions to the peripheral on an instruction bus and sends an instruction enable signal to the peripheral to enable decoding of the instruction. The peripheral is also coupled to the system data bus which is also coupled to the ALU of the microprogrammed system. In these systems, the peripherals must have a special interface to decode the instructions, tri state the data bus and enable the proper register or other logic in the peripheral that the controller wishes to read from or write to.
Heretofore, the interfaces needed by the peripherals in each of these two types of systems needed to be different because of the different handshaking signals involved to synchronize the transfer of data because of the different situations with respect to the clock and the different transaction methods in the two cases. The two types of systems often use the same types of peripherals. Manufacturers of peripherals therefore must manufacture two different types of peripherals which do the same function but which have different interfaces. This causes extra expense.
Thus there has arisen a need for a universal interface which may be used in both asynchronous and synchronous applications.